#! /bin/bash
array=(1 23 45 67 89)
my_array=()
for index in "${array[@]}"; do
  ##数组填充
  my_array+=("${index}")
done
echo "${#my_array[*]}"
##遍历数组
for index in "${my_array[@]}"; do
  echo "my_array collection element is ${index}"
done



#shell脚本开发：在数组all_arr中有10个字符，arr_b数组中有五个字符，
#现在需要，便利arr_b数组和便利all_arr数组，将all_arr数组中与arr_b数组中相同的数据筛选出来，放入arr_c数组中，
#与arr_b数组中不相同的数据筛选出来，放入arr_d数组中，如何编写

#解答：可以使用两层嵌套的循环遍历 `arr_b` 数组和 `all_arr` 数组，判断是否有相同的元素，然后将相同元素放入 `arr_c` 数组，
# 不相同的元素放入 `arr_d` 数组。可以使用以下的 shell 脚本实现：

all_arr=("ABC" "DEF" "GHI" "JKL" "MNO" "ABC" "PQR" "STU" "VWX" "YZ")
arr_b=("ABC" "GHI" "MNO" "XYZ" "123")
arr_c=()
arr_d=()

for el_b in "${arr_b[@]}"
do
    for el_all in "${all_arr[@]}"
    do
        if [[ "$el_all" == "$el_b" ]]; then
            arr_c+=("$el_all")
            break
        fi
    done
done

for el_all in "${all_arr[@]}"
do
    match=0
    for el_b in "${arr_b[@]}"
    do
        if [[ "$el_all" == "$el_b" ]]; then
            match=1
            break
        fi
    done
    if [[ "$match" -eq 0 ]]; then
        arr_d+=("$el_all")
    fi
done

echo "与 arr_b 数组中相同的数据：${arr_c[@]}"
echo "与 arr_b 数组中不相同的数据：${arr_d[@]}"


#以上脚本中，首先定义了包含所有数据的数组 `all_arr`，以及目标数组 `arr_b`，以及两个空的数组 `arr_c` 和 `arr_d`。然后使用两层嵌套的 `for` 循环，
# 外层循环遍历 `arr_b` 数组，内层循环遍历 `all_arr` 数组，判断是否有相同的元素，如果相同则将其加入 `arr_c` 数组。
# 接着使用另外一个独立的循环，遍历 `all_arr` 数组，对于每个元素，都判断是否与 `arr_b` 数组中的元素一一对应，如果不对应则加入 `arr_d` 数组。
# 最后使用 `echo` 命令打印出与 `arr_b` 数组中相同和不相同的数据。


# 使用find命令查找test/目录下所有包含.property后缀的文件，并将结果输出到循环中
FILE_DIR="/opt/test/"
file_names=($(find "${FILE_DIR}" -type f -name "*.property"))
arr=()
for file in "${file_names[@]}"; do
        file_name=$(basename "${file}" .property)
        echo "---------------------> ${file_name}"
        arr+=("$file_name")
done

# 打印结果
for index in "${arr[@]}"; do
  echo "${index}"
done

#在Shell脚本中连接到DB2数据库并执行全库备份可以使用以下命令：
DB_NAME="<database_name>"
BACKUP_DIR="<backup_directory>"

# 连接到数据库
db2 connect to $DB_NAME

# 执行备份命令
db2 "backup database $DB_NAME to $BACKUP_DIR"

# 断开与数据库的连接
db2 connect reset

echo "备份完成。"

#在这个脚本中，我们首先使用`db2 connect`命令连接到DB2数据库，使用`db2`命令执行`backup database`命令进行全库备份，最后使用`db2 connect reset`命令断开与数据库的连接。备份文件将保存在指定的备份目录中。
#
#请注意，在执行此脚本之前，请替换`<database_name>`和`<backup_directory>`以分别指定要备份的数据库和备份目录的名称。
#
#另外，具体的备份相关参数可以根据实际需求进行调整。具体参数可以通过执行`db2 "backup database ?"`来查看备份命令中可以设置的参数。